package com.example.service;

import com.example.entity.User;
import com.example.dto.LoginRequest;
import com.example.dto.RegisterRequest;
import com.example.dto.UserInfoResponse;

import java.util.List;
import java.util.Map;

/**
* @author Administrator
* @description 针对表【user】的数据库操作Service
* @createDate 2025-06-02 15:49:32
*/
public interface UserService {

    /**
     * 用户注册
     * @param registerRequest 注册请求
     * @return 注册结果
     */
    String register(RegisterRequest registerRequest);

    /**
     * 用户登录
     * @param loginRequest 登录请求
     * @return JWT token
     */
    String login(LoginRequest loginRequest);

    /**
     * 根据用户ID获取用户信息
     * @param userId 用户ID
     * @return 用户信息
     */
    UserInfoResponse getUserInfo(Long userId);

    /**
     * 根据用户名查找用户
     * @param username 用户名
     * @return 用户实体
     */
    User findByUsername(String username);

    /**
     * 批量获取用户信息
     * @param userIds 用户ID列表
     * @return 用户ID到用户信息的映射
     */
    Map<Long, UserInfoResponse> getUsersByIds(List<Long> userIds);
}
